import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/6 8:44
 * @description 组合数学 从左上角到右下角的过程中，我们需要移动m+n−2 次，其中有 m−1 次向下移动，n−1 次向右移动。因此路径的总数，就等于从 m+n−2 次移动中选择 m−1 次向下移动的方案数，即组合数：
 *
 */
public class Solution2 {
    public static void main(String[] args) {

    }
    public int uniquePaths(int m, int n) {
        long ans = 1;
        for (int x = n, y = 1; y < m; ++x, ++y) {
            ans = ans * x / y;
        }
        return (int) ans;
    }
}
